20 REM 30 REM 1984 DENIS MARCOUX. 40 REM ************************* 50 REM ****** PENDU ********** 60 REM ************************* 70 REM **** VARIABLES ******** 80 REM ************************* 90 REM 100 REM V: V.I.C S: S.I.D 110 REM MT$: MOT CH: CHOIX PRIS OU NON 120 REM MX: MAX MOTS T: TEST RECHERCHE 130 REM B: MOTS TROUVES 140 REM M: MOTS MANQUES 150 REM PR$: PREMIERE LETTRE 160 REM DR$: DERNIERE LETTRE 170 REM AF$: MOT POUR AFFICHAGE 180 REM I, N, L: COMPTEURS POUR LES BOUCLES 190 REM PL$: PLACE LE CURSEUR 200 REM NO$: NUMEROS POUR AFFICHAGE 210 REM AL$: ALPHABET POUR CHOIX 220 REM TT$: TROTTOIR 230 REM MT: MOT CHOISI AU HASARD 240 REM CH: LISTE DES MOTS UTILISES 250 REM L$: LETTRE (TEMPORAIRE-GOSUB) 260 REM CT: COMPTEUR D'ESSAIS 270 REM PL$: PLACE LE CURSEUR 280 REM X: LONGEUR DE LA CHAINE A IMPRIMER 290 REM 300 REM **************************** 310 REM ****** INITIALISATION ****** 320 REM **************************** 330 MX=20:REM NOMBRE DE MOTS 340 DIMMT$(MX),CH(MX):V=RND(TI):REM SEMENCE DU GENERATEUR DE HASARD 350 V=53248:S=54272:PL$=" ":REM VIC ET SID 360 NO$=PL$+""+"1234567890123456789" 370 TT$=" [163][163][163][163][163][163][163][163][163][163][163][163]":X=LEN(PL$)+1+LEN(TT$):TT$=TT$+NO$ 380 PRINT"[147]"SPC(8)"NE TE FAIS PAS PENDRE!" 390 POKEV+21,12:POKEV+28,12 400 POKE2042,13:POKE2043,14 410 FORN=0TO127:READ L:POKE832+N,L:NEXT 420 FORI=1TOMX:READ MT$(I):NEXT 430 POKEV+23,8:POKEV+29,8 440 POKEV+4,095:POKEV+5,133 450 POKEV+6,200:POKEV+7,113 460 AL$="ABCDEFGHIJKLMNOPQRSTUVWXYZ[146]" 470 REM **************************** 480 REM *** CHOIX D'UN MOT ***** 490 REM **************************** 500 REM 510 T=0:FORN=1TOMX:IFCH(N)=0THENT=1 520 NEXT:IFT=0THENPRINT"[147]JE N'AI PLUS DE MOTS ":GOTO980 530 MT=INT(RND(1)*MX)+1:IFCH(MT)=1THEN530 540 CH(MT)=1:CT=0:REM CT COMPTE LES ESSAIS,CH(I) INDIQUE SI LE MOT I EST PRIS 550 PR$=LEFT$(MT$(MT),1):DR$=RIGHT$(MT$(MT),1):AF$=PR$:REM PLACE LES LETTRES 560 REM DU DEBUT ET DE LA FIN 570 L$=PR$:GOSUB1360:L$=DR$:GOSUB1360:L$="":REM RETIRER CES LETTRES DE LA LISTE 580 FORN=2TOLEN(MT$(MT))-1 590 IF(MID$(MT$(MT),N,1)=PR$)OR(MID$(MT$(MT),N,1)=DR$)THENAF$=AF$+MID$(MT$(MT),N,1):GOTO610 600 AF$=AF$+"[166]" 610 NEXT 620 AF$=AF$+DR$:REM AJOUTER LA DERNIERE LETTRE 630 REM ****************************** 640 REM *** ROUTINE PRINCIPALE **** 650 REM ****************************** 660 PRINT"[147]CHOISI UNE LETTRE, OU LA TOUCHE F1[146]" 670 PRINT"POUR CONSULTER LES CHOIX QUI TE RESTENT," 680 PRINT"OU F7[146] POUR RISQUER UN MOT COMPLET"PL$AF$LEFT$(TT$,X+LEN(MT$(MT))) 690 GETL$:IFL$=""THEN690 700 IFL$="[133]"THENGOSUB1070:GOTO690:REM MONTRER LES CHOIX QUI RESTENT 710 IFL$="[136]"THEN840:REM UN MOT COMPLET 720 IFL$<"A"OR L$>"Z"THEN690 730 T=0:FORN=1TOLEN(MT$(MT)) 740 IFMID$(MT$(MT),N,1)=L$THENAF$=LEFT$(AF$,N-1)+L$+RIGHT$(AF$,LEN(AF$)-N):T=1 750 NEXT 760 GOSUB1360:REM RETIRER UNE LETTRE DES CHOIX 770 IFT=0THENGOSUB1120:CT=CT+1:REM BOUGER LE BONHOMME 780 IFT=1THENPRINT"[147] PAS MAL!"PL$AF$:FORN=1TO1000:NEXT 790 T=0:FORN=2TOLEN(AF$)-1:IFMID$(AF$,N,1)="[166]"THENT=1:REM Y A-T-IL DES TROUS? 800 NEXT:IFCT=7THENGOSUB1190:FORN=1TO2000:NEXT:GOTO900:REM PENDU! 810 IF T=1 THENPRINT"IL TE RESTE ";7-CT;" ESSAIS":FORN=1TO1000:NEXT:GOTO660 820 B=B+1:PRINT"[147]TU AS TROUVE!!![146]"PL$AF$LEFT$(TT$,X+LEN(MT$(MT))):FORN=1TO1000:NEXT 830 GOTO 950: REM C'EST FINI? 840 REM ****************************** 850 REM ***** RISQUE LE MOT! **** 860 REM ****************************** 870 REM 880 PRINT"[147]HOU LA LA! QUEL EST LE MOT?" 890 INPUTL$:IFL$=MT$(MT)THENAF$=""+MT$(MT)+"[146]":GOTO820 900 PRINT" C'EST FICHU!":PRINT" LE MOT ETAIT: "MT$(MT)"[146]" 910 M=M+1 920 REM ****************************** 930 REM ***** JOUER ENCORE? ********** 940 REM ****************************** 950 PRINT"VEUX-TU JOUER ENCORE? (O[146]UI OU N[146]ON)" 960 GETL$:IFL$=""THEN960 970 IFLEFT$(L$,1)="O"THEN440 980 PRINT"[147]TU AS ";B;"[157] MOTS TROUVES[146]"CHR$(13)" ET "M"[157] MOTS MANQUES":END 990 REM 1000 REM 1010 REM ****** SOUS-ROUTINES ********* 1020 REM 1030 REM 1040 REM ******************************* 1050 REM *** AFFICHAGE DES CHOIX ***** 1060 REM ******************************* 1070 PRINT"[147]TES CHOIX POSSIBLES:":PRINT AL$ 1080 PRINTPL$AF$LEFT$(TT$,X+LEN(MT$(MT))):RETURN 1090 REM ******************************* 1100 REM *** BOUGER LE BONHOMME ******** 1110 REM ******************************* 1120 IFPEEK(V+4)>180THEN1140 1130 FORN=1TO5:POKEV+4,PEEK(V+4)+6:GOSUB1260:POKEV+4,PEEK(V+4)-1:GOSUB1260:NEXT:RETURN 1140 GOSUB1260:POKEV+5,PEEK(V+5)-4:POKEV+4,PEEK(V+4)+7:GOSUB1260:RETURN 1150 REM 1160 REM ***************************** 1170 REM ********* PENDU ************* 1180 REM 1190 FORL=0TO24:POKES+L,0:NEXT:POKEV+4,225:POKEV+5,PEEK(V+5)+2 1200 POKES+1,130:POKES+5,9:POKES+15,30:POKES+24,15:FORL=1TO6 :POKES+4,21 1210 FORT=1TOL*100+300:POKES+4,20:FORT=1TO L*100+100:NEXT 1220 POKEV+5,PEEK(V+5)-3*(-1)^L:NEXT 1230 RETURN 1240 REM 1250 REM ****************************** 1260 REM 1270 REM ********** DES PAS ********* 1280 REM 1290 FORL=0TO24:POKES+L,0:NEXT 1300 POKES+0,240:POKES+1,33 1310 POKES+5,8:POKES+22,104:POKES+23,1:POKES+24,79 1320 POKES+4,129:FORT=1TO250:NEXT 1330 POKES+4,128:FORT=1TO30:NEXT:POKES+24,0 1340 RETURN 1350 REM ****************************** 1360 FORN=1TOLEN(AL$):IFL$=MID$(AL$,N,1)THENAL$=LEFT$(AL$,N-1)+RIGHT$(AL$,LEN(AL$)-N) 1370 NEXT:RETURN 1380 DATA 0, 20, 0, 0, 85, 0, 0, 105, 0 1390 DATA 0, 65, 0, 0, 20, 0, 0, 20, 0 1400 DATA 2, 170, 128, 8, 60, 32, 32, 60, 8 1410 DATA 128, 60, 2, 64, 60, 1, 64, 60, 1 1420 DATA 0, 60, 0, 0, 65, 0, 0, 65, 0 1430 DATA 0, 65, 0, 0, 65, 0, 0, 65, 0 1440 DATA 0, 65, 0, 0, 65, 0, 2, 130, 128,0 1450 DATA 0, 0, 85, 0, 0, 49, 0, 0, 49 1460 DATA 0, 0, 49, 0, 0, 205, 0, 3, 3 1470 DATA 0, 0, 205, 0, 0, 49, 0, 0, 1 1480 DATA 0, 0, 1, 0, 0, 1, 0, 0, 1 1490 DATA 0, 0, 21, 0, 0, 21, 0, 1, 85 1500 DATA 0, 1, 85, 0, 21, 85, 0, 21, 85 1510 DATA 1, 85, 85, 1, 85, 85, 85, 85, 85,0 1520 REM ****************************** 1530 REM ********* MOTS *************** 1540 DATA ONOMATOPE,CAPRICE,AFRICAIN,UNIVERSITE,COUPABLE,DEBILITE,CONCIERGERIE 1550 DATATRAVAILLEUR,INFORMATICIEN,AMUSANT,CORRUPTION,AMABILITE,DOUBLURE,ESPION 1560 DATAQUATORZE,UNPIEGE,CONFORTABLE,MENSUEL,PRECEDENT,BORDEREAU